{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 1.画图解释图像卷积滤波的基本原理，并进一步简述常见的图像平滑滤波算法。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "#: 答: 图像参见home_work(basic).docx\n",
    "## 常见的图香港平滑滤波算法有:\"平均滤波\",\"加权平均滤波\",\"中值滤波\",\"图像形态学操作(膨胀,腐蚀,开闭运算)\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 2. 简述边缘检测的基本原理，以及Sobel、LoG和Canny算子的原理差异。 "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "#: 答: 边缘检测的基本原理: 对图像进行微分(实际中常用差分,x和y方向)\n",
    "\n",
    "## Sobel算子是使用算子卷积核对图像\n",
    "\n",
    "## LoG算子是先对图像进行高斯滤波,再使用Laplace算子进行卷积\n",
    "\n",
    "## Canny算子适用于使用已有算子进行卷积后存在噪声,断裂和虚捡的情况,canny算子可以使检测出来的图像边缘自动连通\n",
    "## Canny原理:1.先平滑图像同时计算微分\n",
    "## Canny原理:2.计算梯度(幅值和方向)\n",
    "## Canny原理:3.对梯度幅度值进行非极大值抑制\n",
    "## Canny原理:4.自动边缘连接"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 3. 简述图像直方图的基本概念，及使用大津算法进行图像分割的基本原理。 "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "#: 答: x轴为灰度值,y轴为图像按像素点遍历后累加的灰度值数量,构成的图像称为灰度直方图\n",
    "#: 大津算法进行图像分割的基本原理: 通过遍历灰度取值,确定最佳阈值,使背景和目标之间的类间方差最大(因为二者差异最大)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 4.  简述Harris算子对角点的定义，进行角点检测的基本原理，并说明引入角点响应函数的意义。 "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    " # 答: 在对图像进行检测时,在灰度变化平缓额区域,使用一个mask进行任意方向移动,如果这个mask位于图像中间(不涉及边缘)这个mask里遮罩的灰度值不变,\n",
    " # 当这个mask处于水平边缘时,做水平方向的移动对mask中图像面积保持不变,在进行垂直方向分量不为0时,有mask内图像面积的变化,当mask包含了物体的某一部\n",
    " # 分,无论在水或者是垂直方向移动,都会使得mask内图像面积明显变化.这就是Harris算子的检测方法.\n",
    " #  角点响应函数的意义:在不同场景中,计算出来的阈值往往不同,为了衡量本次计算得到的结果是大还是小,故需要引入角点响应函数."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 5. 简述Hough变换的基本原理(包括参数空间变换及参数空间划分网格统计)。 "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "#答:因为在二维直角坐标系中的直线可以对应到极坐标系中的点,并且二维坐标系中的点对应极坐标系中的曲线,\n",
    "#且同一直线上的多个点,在极坐标下必相交于一点,\n",
    "#故可以把直角坐标系中的像素点转换到极坐标系,此时极坐标系将会有很多相交于一点的曲线\n",
    "#然后将极坐标空间量化成许多小格,根据x-y平面每一个直线点带入θ,算出各个p,将对应格计数累加.\n",
    "#当全部点变换后,对小格进行检验,设置累计阈值.计数器大于T的小格对应于共线点,其可以做直线的拟合参数.\n",
    "# 小于T的反应非共线点,丢弃不用"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 6. 简述SIFT原理(重点是尺度空间和方向直方图原理)及ORB算子原理(重点是FAST和BRIEF)。 "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "#答\n",
    "# SIFT原理:   尺度空间:在图像信息处理模型中引入一个被视为尺度的参数，\n",
    "#                通过连续变化尺度参数获得多尺 度下的尺度空间表示序列，\n",
    "#                对这些序列进行尺度空间主轮廓的提取，并以该主轮廓作 为一种特征向量，\n",
    "#                实现边缘、角点检测和不同分辨率上的特征提取等\n",
    "#               尺度空间方法将传统的单尺度图像信息处理技术纳入尺度不断变化的动态分析框架中 ，\n",
    "#               更容易获取图像的本质特征。尺度空间中各尺度图像的模糊程度逐渐变大，\n",
    "#               能够模 拟人在距离目标由近到远时目标在视网膜上的形成过程。\n",
    "    \n",
    "    \n",
    "#            方向直方图:直方图统计半径为3×1.5σ。即计算以关键点为中心半径3×1.5σ领域内所有的梯度方向.\n",
    "#                        梯度直方图将0-360度的方向分为36个柱.累计落到每个方向内的关键点个数加权值,\n",
    "#                        依次生成梯度方向直方图.\n",
    "#                        将梯度直方图中纵坐标最大的项代表的方向分配给当前关键点作为方向,若在梯度直方图总存在一个相当于主峰值80%能量的\n",
    "#                        峰值则将这个方向认为是关键点的辅方向.辅方向的设计可以增强匹配的鲁棒性,大概有15%的关键点具有辅方向,而恰恰是这15%\n",
    "#                        的关键点对稳定匹配桥关键作用.\n",
    "\n",
    "# ORB = oFast + rBRIEF(oFast作用是特征提取,rBRIEF的作用是特征点描述)\n",
    "# 其中, oFast是由FAST算法改进来的,既在使用FAST提取出特征点之后,给其定义一个特征点方向,\n",
    "# 以此来实现特征点的旋转不变性,然后通过决策树筛选最优特征点,并使用非极大值抑制算法去除临近位置多个特征点\n",
    "#\n",
    "#ORB算法的特征描述是由BRIEF算法改进的(rBRIEF),也就是说,在BRIEF特征描述的基础上加入旋转因子从而改进BRIEF算法\n",
    "#BRIEF算法计算的是一个二进制串的特征描述符,他是在一个特征点的领域内,选择n对像素点,pi、qi（i=1,2,…,n）。\n",
    "#比较每个点对的灰度值大小,如果I(pi)> I(qi)，则生成二进制串中的1,否则为0\n",
    "#所有点都进行比较,则生成长度为n的二进制串.\n",
    "#\n",
    "#"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
